package com.work.game.volley.httpUtil.interfase;

import android.widget.ImageView;

import java.util.Map;

public interface HUCRequestInterfase {
    /**
     * 获取JSON网络数据 ִ
     *
     * @param inputType        请求分发
     * @param method           请求方式
     * @param url              请求地址
     * @param requestParameter 请求参数
     */
    abstract void executeStr(HUCCallBackInterfase httpLogicAbst,
                             Class<?> classs, int inputType, int method, String url,
                             Map<String, String> requestParameter, boolean isflag);

    /**
     * 获取JSON网络数据 ִ
     *
     * @param inputType 请求分发
     * @param method    请求方式
     * @param url       请求地址
     */
    abstract void executeStr(HUCCallBackInterfase httpLogicAbst,
                             Class<?> classs, int inputType, int method, String url, boolean isFlag);

    /**
     * 获取网络图片资源
     *
     * @param inputType 请求分发
     * @param url       请求地址
     */
    abstract void executeImageDownload(HUCCallBackInterfase httpLogicAbst,
                                       int inputType, String url);

    /**
     * 网络加载图片同步加载缓存（原图加载模式）
     *
     * @param url               图片路径
     * @param imageView         显示图片意图
     * @param defaultImageResId 默认图片（网络环境差的时候显示图片）
     * @param errorImageResId   网络环境加载图片失败显示图片
     */
    abstract void executeImageDownloadAndCache(String url, ImageView imageView,
                                               int defaultImageResId, int errorImageResId);

    /**
     * 网络加载图片同步加载缓存（自定义模式）
     *
     * @param url               图片路径
     * @param imageView         显示图片意图
     * @param defaultImageResId 默认图片（网络环境差的时候显示图片）
     * @param errorImageResId   网络环境加载图片失败显示图片
     * @param maxWidth          图片最大宽度（像素）
     * @param maxHeight         图片最大高度（像素）
     */
    abstract void executeImageDownloadAndCache(String url, ImageView imageView,
                                               int defaultImageResId, int errorImageResId, int maxWidth,
                                               int maxHeight);

    /**
     * 取消此队列中的所有请求
     */
    abstract void cancelAll();

    /**
     * 网络json格式字符串
     *
     * @param httpLogicAbst
     * @param inputType
     * @param method
     * @param url
     * @param requestParameter
     */
    void jsonMap(final HUCCallBackInterfase httpLogicAbst, final int inputType, int method, String url,
                 Map<String, String> requestParameter);
}
